/**
 * 为Function对象增加inherit方法，可以用来继承某个类或者是接口。
 */
Function.prototype.inherit = function( parent ){
    if ( parent.constructor == Function )   {       
        //类继承
        this.prototype = new parent;       
        this.prototype.constructor = this;       
        this.base = parent.prototype;   
    } else {
        //接口继承
        this.prototype = parent;
        this.prototype.constructor = this;
        this.base = parent;  
    }   
    return this;
}

/**
 * 用于确保某个条件成立，在发布时删除本函数的所有引用。
 */
Function.prototype.assert = function (bCondition,sMessage) {
    if (!bCondition) {
        throw new Error(0,sMessage);
    }
}

//IE8，没有改对象，创建一个对象
if(!window['console']){
    window['console'] = {log: function(){}}
}

/**
 * 本方法可以返回当前的调用堆栈，有些问题，暂时不用。
 */
/*Function.throwError = function (no,msg) {
    var f = Function.throwError.caller;
    var s,pp=0,p;
    while (f != null) {
        s = f.toString();
        for (var i = 0; i<5; i++) {
            p = s.indexOf(pp+1,"\n");
            if (p>=0) {
                pp = p;
            } else {
                break;
            }
        }
        msg += "\n"+s.substring(0,pp);
        f = f.caller;
    }
    throw new Error(1,msg);
}*/

